namespace SugarTank.Mobile.Translators.Contract
{
    using System.Collections.Generic;

    /// <summary>
    /// Inteface for translation classes
    /// </summary>
    /// <typeparam name="From">
    /// The type of the input.
    /// </typeparam>
    /// <typeparam name="To">
    /// The type of the output.
    /// </typeparam>
    public interface ITranslator<From, To>
    {
        #region Public Methods

        /// <summary>
        /// Translates the specified input into the specified output.
        /// </summary>
        /// <param name="input">The input.</param>
        /// <returns>The output.</returns>
        To Translate(From input);

        /// <summary>
        /// Translates the specified input.
        /// </summary>
        /// <param name="input">The input.</param>
        /// <returns></returns>
        IEnumerable<To> Translate(IEnumerable<From> input);

        #endregion
    }
}